class Solution:
    def busyStudent(self, startTime: list[int], endTime: list[int], queryTime: int) -> int:

        """


        给你两个整数数组 startTime（开始时间）和 endTime（结束时间），并指定一个整数 queryTime 作为查询时间。

已知，第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。

请返回在查询时间 queryTime 时正在做作业的学生人数。形式上，返回能够使 queryTime 处于区间 [startTime[i], endTime[i]]（含）的学生人数。
        :param startTime:
        :param endTime:
        :param queryTime:
        :return:
        """

        #遍历一遍数组，取处于工作状态的时间
        #怎么取，1，函数range()可以得到一个新的数组
        #2.筛选大于开始时间，小于结束时间，
            #优化，判断分开判断，若小于起始时间则不进行下一步判断,可以尝试对比，预期结果差不多
        #对比处于时间的状态和查询时间，处于则返回值+1
        #返回值
        count = 0
        for time_slot in range(len(startTime)):
            if startTime[time_slot] <= queryTime<= endTime[time_slot]:
                count += 1
        return count

        #方法2差分数组，用一个新的数组，将起始时间处+1，结束时间减一，最终，求到查询时间之前的数组和为在线人数
        #方法3，计算结束时间大于查询时间的人，减去开始时间大于查询时间的人，每个数据只用对比一次，提高性能
            #先排序，二分查找找到，二分查找找到上述两个节点，//效率低



if __name__ == '__main__':
    test = Solution()
    print(test.busyStudent(startTime =[4],endTime =[4],queryTime =4))